package com.echo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 存储计划总体信息的主表
 * </p>
 *
 * @author echo
 * @since 2024-11-13
 */
@Data
public class ScheduleVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 计划的唯一标识符
     */
    private String scheduleId;

    /**
     * 用户ID，与用户表中的用户 ID 关联
     */
    private String userId;

    /**
     * 计划的标题，用于描述这项任务的名称
     */
    private String title;

    /**
     * 计划的详细描述，可以填写更多的具体内容
     */
    private String description;


    /**
     * 提醒时间，系统会在这个时间之前提醒用户
     */
    @JsonFormat(pattern = "HH:mm:ss",locale = "zh", timezone = "GMT+8")
    private LocalTime remindTime;

    /**
     * 计划的当前状态
     */
    private Integer status;

    /**
     * 标识这项任务是否由 AI 自动生成
     */
    private Boolean isAiGenerated;

    /**
     * 计划的创建时间
     */
    private Date createTime;
    /**
     * 记录计划最近一次的修改时间
     */
    private Date updateTime;
    private List<String> dateList;


    @Override
    public String toString() {
        return "Schedule{" +
            "scheduleId=" + scheduleId +
            ", userId=" + userId +
            ", title=" + title +
            ", description=" + description +
            ", remindTime=" + remindTime +
            ", status=" + status +
            ", isAiGenerated=" + isAiGenerated +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
        "}";
    }
}
